首页 > 试题广场 >

二叉树中和为某一值的路径(一)

[编程题]二叉树中和为某一值的路径(一)
  • 热度指数:163461 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个二叉树root和一个值 sum ,判断是否有从根节点到叶子节点的节点值之和等于 sum 的路径。
1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点
2.叶子节点是指没有子节点的节点
3.路径只能从父节点到子节点,不能从子节点到父节点
4.总节点数目为n

例如:
给出如下的二叉树,

返回true,因为存在一条路径 的节点值之和为 22

数据范围:
1.树上的节点数满足
2.每 个节点的值都满足
要求:空间复杂度 ,时间复杂度
进阶:空间复杂度 ,时间复杂度
示例1

输入

{5,4,8,1,11,#,9,#,#,2,7},22

输出

true
示例2

输入

{1,2},0

输出

false
示例3

输入

{1,2},3

输出

true
示例4

输入

{},0

输出

false

说明:本题目包含复杂数据结构TreeNode,点此查看相关信息
简洁的JavaScript:
function hasPathSum( root ,  sum ) {
    // write code here
    if (root === null) return;
    if (root.val === sum && root.left === null && root.right === null) return true;
    return hasPathSum(root.left, sum - root.val) || hasPathSum(root.right, sum - root.val);
}


发表于 2021-11-05 16:59:39 回复(0)

问题信息

难度:
2条回答 28896浏览

热门推荐

通过挑战的用户